約 3,342,079 件
https://w.atwiki.jp/agc38/pages/132.html
スタイル 身長分布 体重分布 バスト分布 ウエスト分布 ヒップ分布 推定ブラサイズ分布 コメント スタイル № 名前 身長 体重 バスト ウエスト ヒップ BMI 推定ブラサイズ 市販品近似サイズ 理想ヒップ 01 神津 明日香 157 47 73 55 76 19.1 Aカップ(微乳) AA(65) 84 02 大辻 梨乃 157 48 75 54 78 19.5 Bカップ(普乳) A(65) 85 03 花城 さくら 154 48 75 57 73 20.2 Aカップ(微乳) A(65) 83 04 木浦 琴音 156 48 80 56 76 19.7 Cカップ(普乳) C(65) 84 05 小糸 咲 157 48 76 58 74 19.5 Aカップ(微乳) A(65) 85 06 永谷 茜 156 49 72 54 76 20.1 Aカップ(微乳) AA(65) 84 07 高須賀 彩乃 156 45 79 54 73 18.5 Cカップ(普乳) C(65) 84 08 白柳 結衣 155 48 75 58 76 20.0 Aカップ(微乳) A(65) 84 09 星野 寧々 158 48 77 58 79 19.2 Aカップ(微乳) B(65) 85 10 園山 美月 155 47 76 59 74 19.6 Aカップ(微乳) A(65) 84 11 豊住 若菜 156 47 72 54 78 19.3 Aカップ(微乳) AA(65) 84 12 加賀山 栞 156 46 82 56 79 18.9 Dカップ(適乳) D(65) 84 13 加賀山 優月 156 46 80 55 79 18.9 Cカップ(普乳) C(65) 84 14 寺林 陽菜 155 47 79 55 78 19.6 Cカップ(普乳) C(65) 84 15 在原 環 158 49 74 57 73 19.6 AAカップ(微乳) AA(65) 85 16 夏原 里美 158 49 86 58 83 19.6 Eカップ(巨乳) E(65) 85 17 高月 璃子 159 50 81 53 76 19.8 Dカップ(適乳) D(65) 86 18 桜小路 葵 156 48 81 56 80 19.7 Dカップ(適乳) C(65) 84 19 鈴元 日和 153 45 75 52 74 19.2 Bカップ(普乳) C(60) 83 20 潮崎 杏奈 157 50 84 58 80 20.3 Dカップ(適乳) D(65) 85 21 日下 亜美 156 45 73 58 75 18.5 AAカップ(微乳) AA(65) 84 22 黒島 玲奈 156 48 83 55 78 19.7 Eカップ(巨乳) D(65) 84 23 都筑 優奈 162 51 88 56 78 19.4 Fカップ(巨乳) F(65) 87 24 東山 櫻子 155 45 82 54 80 18.7 Eカップ(巨乳) D(65) 84 25 桜丘 瞳 155 48 86 56 80 20.0 Fカップ(巨乳) F(65) 84 26 篠山 小春 155 46 76 57 79 19.1 Aカップ(微乳) A(65) 84 27 雑賀 くるみ 158 47 75 53 75 18.8 Bカップ(普乳) A(65) 85 28 外池 美穂 156 47 72 54 75 19.3 Aカップ(微乳) AA(65) 84 29 古海 遥香 155 48 82 57 73 20.0 Dカップ(適乳) D(65) 84 30 坂尻 桃花 152 45 78 54 75 19.5 Cカップ(普乳) C(65) 82 31 豊原 香織 157 48 76 60 78 19.5 AAカップ(微乳) AA(70) 85 32 川澄 愛梨 155 49 82 59 77 20.4 Cカップ(普乳) C(65) 84 33 有澤 美鈴 150 43 72 48 74 19.1 Cカップ(普乳) B(60) 81 34 門井 舞 157 46 73 55 74 18.7 Aカップ(微乳) AA(65) 85 35 鴨下 未来 157 49 83 55 76 19.9 Eカップ(巨乳) D(65) 85 36 刈谷 七海 161 49 90 59 80 18.9 Fカップ(巨乳) E(70) 87 37 柚原 花音 155 45 75 58 74 18.7 Aカップ(微乳) A(65) 84 38 三条 美羽 160 50 80 58 75 19.5 Bカップ(普乳) C(65) 86 平均 156.2 47.4 78.4 55.9 76.6 19.4 Cカップ(普乳) B(65) 84 身長・体重・バスト・ウエスト・ヒップ =公式値。 BMI =体重(kg) / 身長(m) / 身長(m) で小数第2位で四捨五入。日本肥満学会では、BMI 22→標準体重、25以上→肥満、18.5未満→低体重としている。 推定ブラサイズ・市販品近似サイズ・理想ヒップ =理想的な女性の体型とされる、ゴールデンカノン(バスト=身長の0.54倍、ウエスト=身長の0.38倍、ヒップ=身長の0.54倍)を基準としている 美少女、バストカップ数測定スクリプト で算出。トップバストが大きければ必ず巨乳 であるとは限らない 。 平均 =AGC38の平均値。 参考1: 美少女、バストカップ数測定スクリプト 参考2: ボディマス指数 参考3: バスト占いのうた ※音声注意 身長分布 150cm 1 有澤 美鈴 152cm 1 坂尻 桃花 153cm 1 鈴元 日和 154cm 1 花城 さくら 155cm 9 川澄 愛梨 桜丘 瞳 篠山 小春 白柳 結衣 園山 美月 寺林 陽菜 東山 櫻子 古海 遥香 柚原 花音 156cm 10 加賀山 栞 加賀山 優月 木浦 琴音 日下 亜美 黒島 玲奈 桜小路 葵 外池 美穂 高須賀 彩乃 豊住 若菜 永谷 茜 157cm 7 大辻 梨乃 門井 舞 鴨下 未来 小糸 咲 神津 明日香 潮崎 杏奈 豊原 香織 158cm 4 在原 環 雑賀 くるみ 夏原 里美 星野 寧々 159cm 1 高月 璃子 160cm 1 三条 美羽 161cm 1 刈谷 七海 162cm 1 都筑 優奈 体重分布 43kg 1 有澤 美鈴 45kg 6 日下 亜美 坂尻 桃花 鈴元 日和 高須賀 彩乃 東山 櫻子 柚原 花音 46kg 4 加賀山 栞 加賀山 優月 門井 舞 篠山 小春 47kg 6 神津 明日香 雑賀 くるみ 外池 美穂 園山 美月 寺林 陽菜 豊住 若菜 48kg 11 大辻 梨乃 木浦 琴音 黒島 玲奈 小糸 咲 桜丘 瞳 桜小路 葵 白柳 結衣 豊原 香織 花城 さくら 古海 遥香 星野 寧々 49kg 6 在原 環 鴨下 未来 刈谷 七海 川澄 愛梨 永谷 茜 夏原 里美 50kg 3 三条 美羽 潮崎 杏奈 高月 璃子 51kg 1 都筑 優奈 バスト分布 72cm 4 有澤 美鈴 外池 美穂 豊住 若菜 永谷 茜 73cm 3 門井 舞 日下 亜美 神津 明日香 74cm 1 在原 環 75cm 6 大辻 梨乃 雑賀 くるみ 白柳 結衣 鈴元 日和 花城 さくら 柚原 花音 76cm 4 小糸 咲 篠山 小春 園山 美月 豊原 香織 77cm 1 星野 寧々 78cm 1 坂尻 桃花 79cm 2 高須賀 彩乃 寺林 陽菜 80cm 3 加賀山 優月 木浦 琴音 三条 美羽 81cm 2 桜小路 葵 高月 璃子 82cm 4 加賀山 栞 川澄 愛梨 東山 櫻子 古海 遥香 83cm 2 鴨下 未来 黒島 玲奈 84cm 1 潮崎 杏奈 86cm 2 桜丘 瞳 夏原 里美 88cm 1 都筑 優奈 90cm 1 刈谷 七海 ウエスト分布 48cm 1 有澤 美鈴 52cm 1 鈴元 日和 53cm 2 雑賀 くるみ 高月 璃子 54cm 7 大辻 梨乃 坂尻 桃花 外池 美穂 高須賀 彩乃 豊住 若菜 永谷 茜 東山 櫻子 55cm 6 加賀山 優月 門井 舞 鴨下 未来 黒島 玲奈 神津 明日香 寺林 陽菜 56cm 5 加賀山 栞 木浦 琴音 桜丘 瞳 桜小路 葵 都筑 優奈 57cm 4 在原 環 篠山 小春 花城 さくら 古海 遥香 58cm 8 日下 亜美 小糸 咲 三条 美羽 潮崎 杏奈 白柳 結衣 夏原 里美 星野 寧々 柚原 花音 59cm 3 刈谷 七海 川澄 愛梨 園山 美月 60cm 1 豊原 香織 ヒップ分布 73cm 4 在原 環 高須賀 彩乃 花城 さくら 古海 遥香 74cm 6 有澤 美鈴 門井 舞 小糸 咲 鈴元 日和 園山 美月 柚原 花音 75cm 5 日下 亜美 雑賀 くるみ 坂尻 桃花 三条 美羽 外池 美穂 76cm 6 鴨下 未来 木浦 琴音 神津 明日香 白柳 結衣 高月 璃子 永谷 茜 77cm 1 川澄 愛梨 78cm 6 大辻 梨乃 黒島 玲奈 都筑 優奈 寺林 陽菜 豊住 若菜 豊原 香織 79cm 4 加賀山 栞 加賀山 優月 篠山 小春 星野 寧々 80cm 5 刈谷 七海 桜丘 瞳 桜小路 葵 潮崎 杏奈 東山 櫻子 83cm 1 夏原 里美 推定ブラサイズ分布 AAカップ (微乳) 3 在原 環 日下 亜美 豊原 香織 Aカップ (微乳) 12 門井 舞 小糸 咲 神津 明日香 篠山 小春 白柳 結衣 外池 美穂 園山 美月 豊住 若菜 永谷 茜 花城 さくら 星野 寧々 柚原 花音 Bカップ (普乳) 4 大辻 梨乃 雑賀 くるみ 三条 美羽 鈴元 日和 Cカップ (普乳) 7 有澤 美鈴 加賀山 優月 川澄 愛梨 木浦 琴音 坂尻 桃花 高須賀 彩乃 寺林 陽菜 Dカップ (適乳) 5 加賀山 栞 桜小路 葵 潮崎 杏奈 高月 璃子 古海 遥香 Eカップ (巨乳) 4 鴨下 未来 黒島 玲奈 夏原 里美 東山 櫻子 Fカップ (巨乳) 3 刈谷 七海 桜丘 瞳 都筑 優奈 コメント これだけいて160台が僅かに三人…。高身長モデル体型の娘がいても良かったのに。あと逆に140台のちっちゃい子も。 - 名無しさん 2010-12-11 10 54 16 確かに。140台とか160台はもうちょっといてもいいね。しかし大辻梨乃の身長が意外と高いな。なんとなくゴスロリキャラ→背が低めというイメージを持っていたが。 - 名無しさん 2010-12-11 18 25 29 名前
https://w.atwiki.jp/prrmydress/pages/81.html
コーデ マイデコ例 コーデボーナス ジャンププログラム 【吹き出しコメント1】マーチングのチャームがポイントのデコだね♪ 【吹き出しコメント2】ピンクでラブリーにマーチングスタイル♪ 【メモ】 ブランド スター コーデ トップス 不明 不明 ボトムス - - シューズ 不明 不明 アレンジ - - ▲ マイデコ例 チャーム1 チャーム2 フレーム マーチング - - ▲ コーデボーナス ステージ コーデボーナス プリズムストーンショップ ◆◆◆◆◇ ほしぞらロックフェス ◆◆◆◇◇ プリズムLIVEスタジアム ◆◆◆◇◇ パウダースノーパーク ◆◆◆◇◇ スイーツカフェ ◆◆◆◆◆ プラネタリウム ◆◆◆◆◇ プリズムアリーナ ◆◆◆◇◇ トロピカルビーチ ◆◆◆◇◇ プリズムフューチャーアリーナ ◆◆◆◆◇ ゆうぐれロックフェス ◆◆◆◇◇ ディアクラウンショップ ◆◆◆◇◇ プリズムマイ☆デコアリーナ ◆◆◆◇◇ はらじゅくストリート ◆◆◆◆◆ ギャラクシースターファイナル ◆◆◆◆◇ ▲ ジャンププログラム 順番 ジャンプ 得点 サプライズ 1 はちみつキッス 100 あり 2 ラブリーレインボー 150 3 ときめきGroovin' BEAT 220 4 100%ピュア×2アロー 250 ▲
https://w.atwiki.jp/prrmydress/pages/369.html
コーデ マイデコ例 コーデボーナス ジャンププログラム 【吹き出しコメント1】おいしいこころがポイントのデコだね♪ 【吹き出しコメント2】ポップにはじけて あんスタイル♪ 【メモ】 ブランド ポップ コーデ トップス 不明 不明 ボトムス - - シューズ 不明 不明 アレンジ - - ▲ マイデコ例 チャーム1 チャーム2 フレーム おいしいこころ - - ▲ コーデボーナス ステージ コーデボーナス プリズムストーンショップ ◆◆◆◆◇ ほしぞらロックフェス ◆◆◆◆◆ プリズムLIVEスタジアム ◆◆◆◇◇ パウダースノーパーク ◆◆◆◇◇ スイーツカフェ ◆◆◆◇◇ プラネタリウム ◆◆◆◇◇ プリズムアリーナ ◆◆◆◇◇ トロピカルビーチ ◆◆◆◆◆ プリズムフューチャーアリーナ ◆◆◆◇◇ ゆうぐれロックフェス ◆◆◆◆◆ ディアクラウンショップ ◆◆◆◆◇ プリズムマイ☆デコアリーナ ◆◆◆◇◇ はらじゅくストリート ◆◆◆◆◇ ギャラクシースターファイナル ◆◆◆◇◇ ▲ ジャンププログラム 順番 ジャンプ 得点 サプライズ 1 ポップンキャンディロケット 100 2 カラフルチョコパレード 150 3 ウェイクアップガールRe born 220 4 スウィンギンハートリズム 250 ▲
https://w.atwiki.jp/mainichi-matome/pages/4629.html
基礎データ ブランド名 ユニチカテキスタイル 会社名 ユニチカテキスタイル株式会社 電話番号 Fax番号 メール 企業分類 繊維 現在の問合せ結果 × 現在のコメント メール返信なし 最終更新日 2009/09/26 特記事項 ユニチカグループユニチカ株式会社 株式会社ユニチカエステート ユニチカテキスタイル株式会社 他 基礎データ特記事項 ユニチカテキスタイル2008年7月23日の毎日夕刊に広告あり 他、広告あり 2009/09/21 ×(メール返信なし) 特に新聞に広告を出している企業は毎日新聞にとって泣き所となるようです 問合せ 問合せ先一覧 / 毎日新聞に広告を出していた企業(日付別) / 毎日jpに広告を出していた企業 / 電話問合せのコツ 結果別一覧 ◎◎-◎-○ / △ / ×(記号、数字、ローマ字) / ×(ひらがな) / ×(カタカナ・ア行~ナ行) / ×(カタカナ・ハ行~ワ行) / ×(漢字・あ行~か行) / ×(漢字・さ行~た行) / ×(漢字・な行~は行) / ×(漢字・ま行~わ行) 分野別一覧 製造業 / 製造業その他 / 小売、卸売 / サービス業、娯楽 / 医療、医薬 / 建設、不動産 / 金融、運輸、IT、その他 / マスコミ、出版 行政等一覧 行政、各種団体等 / 教育機関等 / 政治家、著名人 毎日新聞系列 【その1】 【その2】 【その3】 【その4】 【その5】 【その6】 【その7】 【その8】 【その9】 問合せ報告 毎日新聞関係の凸結果を淡々と張り続けるスレ7 ※「電凸」とは「電話問合せ」のインターネットスラング(俗語)です。(詳細は用語集) 対応評価の大まかな目安 ◎◎ 広告打ち切り・今後広告を出さない・今後広告を出す予定はない ◎ 良対応・厳重な抗議 ○ 普通、中立対応・対応検討中、今後注視 △ 保留・問合せの返答結果待ち(3日以内に回答なければ×) × 悪対応・無回答・処分は十分毎日の姿勢を容認・広告続行 このテンプレを編集 ユニチカテキスタイル 2008年7月23日の毎日夕刊に広告あり 他、 広告あり 2009/09/21 ×(メール返信なし) 「日本の母は息子の性処理係」毎日新聞が捏造記事169 http //hideyoshi.2ch.net/test/read.cgi/ms/1253530105/19 19 名前:可愛い奥様[] 投稿日:2009/09/21(月) 22 45 08 ID YOyQSCrc0 222 名前:松崎名無しげる[sage] 投稿日:09/09/21 22 43 58 ID 2yuK6y3B メールのお返事ですv ユニチカテキスタイル株式会社→メール返信なし 検索 2009年7月17日の毎日朝刊 広告一覧 2009年7月19日の毎日朝刊 広告一覧 2009年7月22日の毎日朝刊 広告一覧 2009年8月07日の毎日朝刊 広告一覧 ユニチカ ユニチカテキスタイル 問合せ結果分野別一覧 問合せ結果別一覧 ×対応の企業(カタカナで始まる企業名・ハ行~ワ行)
https://w.atwiki.jp/orisuta/pages/972.html
testスレ test 2回目スレ test テイク3スレ(使用オリスタ) test 4時限目~(赤点)スレ(使用オリスタ) test(追試)スレ(使用オリスタ) test(採点中)スレ(使用オリスタ) testスレ(受験) test 合格(AAの元ネタ) test(入試) ムヒー スタンド図鑑No.113 スタンド図鑑No.229 スタンド図鑑No.4369 スタンド図鑑No.4372 スタンド図鑑No.4374 スタンド図鑑No.4821 スタンド図鑑No.4824 スタンド図鑑No.4843 当wiki内に掲載されているすべての文章、画像等の無断転載、転用を禁止します。 [ トップページ ] [ ルールブック ] [ 削除ガイドライン ] [ よくある質問 ] [ 管理人へ連絡 ]
https://w.atwiki.jp/bb_archive08/pages/60.html
たまたま来て見たら 投稿日 2003年11月24日(月)00時40分 投稿者 なにー この掲示板まだあったのかー 明日新主将が決まります。 自分の考える今後のチームに必要な変化、主将のスタイルを少し述べたいと思います。 何が足りなかったのかをかんがえる、なかなか難しい。 日体戦1試合を見ていうならばそんな難しくないかもしれない、しかし日体戦1試合をみて今年一年を判断するのは視野が狭すぎる。 今年目指していた物をできればあの試合は勝てていたと思う。 だったら、あの試合で負けたからといって今年目指していた物が間違いとはいえないはず。 しかし、及ばなかったのだから何かがたりなかった、何かを変えなければ。 今年日本一になるために目指していた物、 いちおうここにはかかない 今年、これに近いことをやってるチームがあったと思った。それは慶応。 慶応は鈴村や大吉といったスーパープレイヤーがいなかったものの今日も12対1と 圧倒して学生チャンプになった。 慶応を例に出すのは好きではないが、やはり方向性は正しいと思う。 ましてや、慶応はブレイクがない。ブレイクをたせば・・・ では何が足りなかったのか、2つ考える。 一つは基礎技術。パスキャッチ、シュート、GBひどかった。 二つ目は理解。 今年目指す物の理解。 三つめは主体性、貪欲さ、積極性といったものではないか。 理解というものに時間はかかって当然、8月にはじめてわずか3か月しかないわけだし。 しかし、全員が主体性をもってそれを理解しようといていたか? が問題とかんがえました。 とりあえず、こんくらいで。あとは明日。 この掲示板を見ている人は一体?? まあー俺もたまたまここを見ているわけだけど。 14期のみなさん方がみているのでしょうか。↓は林か? 前に戻る
https://w.atwiki.jp/prrmydress/pages/118.html
コーデ マイデコ例 コーデボーナス ジャンププログラム 【吹き出しコメント1】つばさフレームにはおだやかなこころのデコ! 【吹き出しコメント2】エンジェルスタイルでこころはばたく♪ 【メモ】 ブランド スター コーデ トップス 不明 不明 ボトムス - - シューズ 不明 不明 アレンジ - - ▲ マイデコ例 チャーム1 チャーム2 フレーム おだやかなこころ - つばさ ▲ コーデボーナス ステージ コーデボーナス プリズムストーンショップ ◆◆◆◇◇ ほしぞらロックフェス ◆◆◇◇◇ プリズムLIVEスタジアム ◆◆◇◇◇ パウダースノーパーク ◆◆◇◇◇ スイーツカフェ ◆◆◆◆◇ プラネタリウム ◆◆◆◇◇ プリズムアリーナ ◆◆◇◇◇ トロピカルビーチ ◆◆◇◇◇ プリズムフューチャーアリーナ ◆◆◆◇◇ ゆうぐれロックフェス ◆◆◇◇◇ ディアクラウンショップ ◆◆◇◇◇ プリズムマイ☆デコアリーナ ◆◆◇◇◇ はらじゅくストリート ◆◆◆◆◇ ギャラクシースターファイナル ◆◆◆◇◇ ▲ ジャンププログラム 順番 ジャンプ 得点 サプライズ 1 ミスフェアリーガール 100 あり 2 きらめきフューチャースター 150 3 ときめきGroovin' BEAT 220 4 はばたきレインボーテイル 250 ▲
https://w.atwiki.jp/wiki3_wiz/pages/16.html
スタイルシートの利用 構造と表現の分離 HTML4の考え方 HTML4(HTML4.0およびHTML4.01)では、構造=コンテクストの記述 と表現=ビジュアルデザインの記述 を分離することが推奨されています。 HTMLはコンテクスト、つまりコンテンツの構造を記述するものだとする原理主義の教義にのっとったものです。 fontタグが使えない! この考え方によれば下のようなHTMLは誤り(言い過ぎ?推奨されない)となります。 fontsize=5 color=red fontタグが使えないなんて! /font 将来的に無効になるタグの例 font テキストのフォント、サイズ、色等を指定 applet Javaアプレットの呼び出し center センター揃え sおよびstrike 取り消し u アンダーライン 将来的に無効になる属性の例 background ページの背景 bgcolor 背景色 align 配置 top,middle,bottom etc height テーブルセルの高さ等 width テーブルセルの幅・罫線の幅等 構造と表現を分離するには 将来的に使えないとされているタグや属性を使わずにHTMLを書くために、スタイルシートを利用することが求められています。一説によれば、スタイルシートはHTML自体より早く定義され、ワープロのレイアウト定義に使用されてきたとのことです。XMLでもスタイルシートの利用が推奨されています。 スタイルシートを利用すれば、文書の構造定義であるHTMLと分離して、文書のビジュアルデザインを定義することが可能になります。 スタイルシートの利用 スタイルシートの例 スタイルシートでは h1 { color red} のようにセレクタ(例ではh1タグ)を指定し、宣言と呼ばれる{}の中にプロパティ(例ではcolor)と値(red)をコロン で区切って記述します。セミコロン;で区切れば複数のプロパティを指定することもできます。 h1{color red;font-size XX-large;margin-left 100px} h1タグを、色は赤で、フォントサイズ最大で、左に100ピクセルの空白を入れて表示する スタイルシートの適用方法 タグの中に直接書く インライン方式 h1 style= font-size=32pt; color red HEADで定義しておく エンベッド方式 head style= text/css !-- h1 {font-size 32pt; color red} -- /style 別ファイルで定義する リンク方式 head link rel= stylesheet type= text/css href= default.css 一括定義・一括管理が可能なリンク方式をできる限り採用し、リンクで定義しきれない部分のみをインライン方式で設定することが望ましい スタイルシートのメリット 複数の文書に一貫したデザインが適用できる デザインのメンテナンスが一括で行える(リンク方式で適用した場合) HTMLに比べて、細かな設定ができる デザイン要素がなくなるためHTMLがスッキリする スタイルシート 文字 文字プロパティ スタイル 設定方法 コメント フォントの設定 特殊な効果が必要な場合以外は使用しない 文字サイズ font-size XXXX 絶対値指定と相対値指定の二種類あり 要注意 文字スタイル font-style italic / normal 斜体・標準の指定 文字の太さ font-weight bold / normal 太字・標準の指定 文字色 color COLOR_NAME or RGB 色名指定に対応していないブラウザあり、要注意 サイズの値 絶対値と相対値 文字サイズの値には、絶対値指定と相対値指定がある。 絶対値指定 pt ポイント px ピクセル 相対値指定 7段階指定(xx-largex-largelargemediumsmallx-smallxx-small) 絶対値で指定するとユーザがブラウザの文字サイズを変更してもサイズが変わらないため、好みの文字サイズで表示できなくなってしまいます。これはWEB原理主義に反するため、相対値で指定することが望ましいと佐藤は考えています。 相対指定には現在の大きさにたいする比率指定もありますが、煩雑なので佐藤は使用していません。 相対値指定時のデフォルトサイズ 現状ブラウザのデフォルトの文字サイズは small となっていますが、HTMLの規格上は medium がデフォルトです。 Netscape6.0のみ標準規格に対応し、mediumがデフォルトサイズとなっています。また、解像度の違いによりマッキントッシュでは、ワンサイズ小さく表示されてしまいます。 7 xx-large 文字サイズ xx-large 文字サイズ 36pt 6 x-large 文字サイズ x-large 文字サイズ 24pt 5 large 文字サイズ large 文字サイズ 18pt 4 medium 文字サイズ medium 文字サイズ 13.5pt 3 small 文字サイズ small 文字サイズ 12pt 2 x-small 文字サイズ x-small 文字サイズ 10pt 1 xxsmall 文字サイズ xx-small 文字サイズ 7.5pt 表示= 文字サイズでサイズを変更すると左の文字はサイズが変わるが、右は変わらない。 色の値 red,navy等の色名による指定もできますが、HTMLの規格で決まっている色名は Black,Silver,Gray,White,Maroon,Red,Purple,Fuchsia,Green,Lime,Olive,Yellow,Navy,Blue,Teal,Aquaの16色のみとなっています。他の色名はブラウザにより正確に表示できない可能性があるため、上記の16色以外の色は16進で指定することが推奨されています。 Black #000000 Silver #C0C0C0 Gray #808080 white #FFFFFF Maroon #800000 Red # FF0000 Purple #800080 Fuchsia #FF00FF Green #008000 Lime #00FF00 Olive #808000 Yellow # FFFF00 Navy #000080 Blue # 0000FF Teal # 008080 Aqua #00FFFF スタイルシート 段落 チョットしたクイズ Q1. p で改行され、1行空白行が入るのはなぜか? Q2. br br あるいは p /p は許されるか? Q3.下のHTMLは正しいでしょうか? 3-1 body h1 佐藤のJavaサイト /h1 JavaはC++より優れている 3-2 body p 社員健康順位 table border=2 tr td 第一位 /td td 佐藤 /td /tr ・・・・・・ 段落とは? HTMLではBODY部は段落の集合であるとされています。いくつかの段落が組み合わされてBODY部となります。言い換えると、段落に所属しない要素はHTMLの規約に反していることになります。 ブロックレベルエレメントとインラインレベルエレメント HTMLのタグは段落を作るタグと段落の中にあるべきタグの二つに分けられています。 ブロックレベルエレメント 段落を作成するタグです。ブロックレベルエレメントには以下のタグがあります。 p h1,h2~h6 ul,ol,dl blockquate form table div hr,pre,center インラインレベルエレメント 段落の中にあるべきタグです。インラインレベルエレメントには以下のタグがあります。 br em,strong sub,sup a img input 注意点 ブロックレベルエレメントの中にブロックレベルエレメントを入れてはいけない ブロックレベルエレメントに対するスタイル指定はテキスト文字だけでなく、段落全体に影響する クイズの答え 二つとも正しくない! = 「JavaはC++より優れている」点は真実だが、この文がどの段落にも含まれていないので× = ブロックレベルエレメントであるtableタグがブロックレベルエレメントであるpタグの中にあるので× とは言え、原理主義を徹底するには若干の無理があります。例えば、フォームの中にテーブルで入力項目やボタンを整列して配置したいという場合には、ブロックレベルエレメントであるformの中に、同じくブロックレベルエレメントであるtableを入れ子にしなければなりません。だからと言って、すべての原理が無意味であるということにはなりませんが、原理主義の常として、現実社会との調和が重要な課題であると言えるでしょう。 pタグの使い方 基本的に段落ごとにpタグを入れ、段落の最後は/pで閉じる 見出しタグ(h1,h2等)やテーブルタグ、divタグの前にはpタグは不用、これらのタグの前では/pで段落を終らせる 空のpタグは許されない ブラウザで無視されることになるはず スタイルシート 余白(パディングとマージン) 余白 タグの中身=コンテンツはパディングとマージンという余白で取り囲まれている。 パディングはコンテンツを内側で取り囲み、マージンはコンテンツを外側で取り囲む。 コンテンツに対するスタイルはパディングまで影響する。 上の段落 パディング 0 マージン 0 コンテンツ パディング 20px マージン 10px 背景色 アクア 枠の内側の水色の部分がコンテンツとパディング、枠の外側の上下の段落との間の空白の部分がマージン 下の段落 パディング 0 マージン 0 設定 上下左右一括指定 magin 20px 上指定 magin-top 20px 下指定 magin-bottom 20px 左指定 magin-left 20px 右指定 magin-right 20px 上はmargin指定の例、パディングの場合は padding 20px等々となる 注意! 段落間の間隔は上下の段落のマージンのうち大きい方で決まる 段落間のマージンをコントロールするには、この点が重要になります。段落見出しh3と段落pのマージンを少なくするには段落見出しh3の下マージンを設定するだけでは不十分です。段落pの上マージンの方が大きいと、そちらが優先されてしまいます。 行の横幅 ページ全体をテーブルで囲み、テーブルにwidthを設定して、行の横幅を制御するというような技は使わないこと。スタイルシートの width プロパティで設定します。とは言え、行の横幅を決めてしまうことはWEB原理主義に反する行為なので、好ましくないと考える人たちが存在することも知っておきましょう。誰もが1024×768の画面で、最大化してWEBを見ているとは限りません。ユーザの表示したいサイズに合せて柔軟に表示できるようなページを作ることが大切です。 preタグも画面のサイズに影響を与えます。乱用は避けるべきでしょう。 行揃え text-align プロパティを使う。値は left,center,right 等間隔にそろえるには text-align justify を使う。日本語では text-jutify distribute もトライしてみる。 行の間隔 ブラウザのデフォルトは英文用の行間になっています。日本語では見ずらいという人もいます。行間を広げたい場合は、line-height プロパティを使用し、値はポイントによる絶対指定か現在の文字サイズに対する倍率指定で行います。ただ、いたずらに行間を広げると、間延びしたページになってしまいます。文章の構成を考え、段落に分割して、読みやすいページにする必要があります。 左マージン 20px 右マージン 10px 上マージン 15px 下マージン 10px 行の幅 300 中央揃え 行間2倍 の例 divstyle= margin-left 20px;margin-right 10px;margin-top 15px;margin-bottom 10px; line-height 2;text-align center; width 300 /div 左マージン 20px 右マージン 10px 上マージン 15px 下マージン 10px 行の幅 300 中央揃え 行間2倍 で実際に設定した例 スタイルシート イメージと文字の関係 イメージと文字揃え 文字の回り込み いずれも省略しました。誰か補足願います。 スタイルシート 罫線 罫線を引く border-(top/bottom/left/right-)style solid / none ; 罫線に色をつける border-(...-)color COLOR_NAME; 罫線の太さを変える 罫線の太さ ?? border-(...-)width XXpx ; スタイルシート 印刷 改ページ指定 page-break-before always ; メディア別指定 省略 スタイルシート タグ以外への設定 タグ以外へのスタイルの設定 設定したいスタイルに対応するタグがある場合はタグに対してスタイルを設定できますが、適当なタグがない場合は、DIV や SPAN にスタイルを書くことになります。前述の通り、DIVはブロックレベルエレメントなので段落を作成したい場合に記述し、SPANはインラインレベルエレメントなので段落中に記述することになります。 この先の内容は spanstyle= color red 赤で書きたい /span と思った 実例.この先の内容は赤で書きたいと思った 複数の要素にまとめてスタイルを設定したいときは、クラス名を使用します。リンク方式もしくはエンベッド方式で、クラスに対してスタイルを書き、HTML中にクラス名を入れます。 クラスへのスタイル設定 .sample {color blue;font-weight bold} クラス名を入れたHTML この先は spanclass= sample サンプルクラス /span です 佐藤の標準スタイルシート ページの構成の考え方 文 < 段落 < 章 < ページ 文の集まりを段落、段落の集まりを章、章の集まりをページとする。 上記の主たる構成以外に、署名・コメント・強調・ナビゲーション・履歴に対してスタイルを設定する。 ページ bodyタグにページ全体の本文エリアのマージンを設定する。(見出しは本文エリアからマイナスのマージンを取る) body{ text-align left; // テキスト左揃え margin-left 30px; // 左マージン 30ピクセル margin-right 5px // 右マージン 5ピクセル} ページ見出し タグ h1 を使用する。CSSの設定により文字サイズはx-large、中央揃えとなる。 h1{ text-align center; // テキスト中央揃え font-size x-large // 文字サイズ x-large} 章見出し タグ h2 を使用する。CSSの設定により、左端に濃い色が、背景に薄い色がつき、強調して表示される。 h2{ margin-left -20px; // bodyのマージンより左に 20ピクセル background-color #e7e7e7; // 背景色 薄い灰色 border-color #000080; // 境界線色 Navy border-top-style none; // 境界線 上 なし border-bottom-style none; // 境界線 下 なし border-right-style none; // 境界線 右 なし border-left-style solid; // 境界線 左 線 border-left-width 13px; // 境界線 左 太さ 13ピクセル font-size large; // 文字サイズ large padding 3px // 内側余白 3ピクセル} 段落見出し タグ h3 を使用する。CSSの設定により、テキストエリアより左に出て表示される。 h3{ margin-left -10px; // bodyのマージンより左に 10ピクセル margin-bottom 1px; // 段落の外側下余白 1ピクセル font-size medium // 文字サイズ medium} 段落小見出し 必要により段落に小見出しをつける。小見出しはタグ h4 を使用する。CSSの設定により、テキストエリアより左に出て表示される。 h4{ /* 段落小見出し */ margin-left -5px; // bodyのマージンより左に 5ピクセル margin-bottom 1px; // 段落の外側下余白 1ピクセル font-size small // 文字サイズ small テキストと同じ } 署名 WEB上のページは必ずしもホームページから順に読まれるとは限らない。検索エンジン等により、中間のページが最初に読まれるかもしれない。したがって各ページには、著者の署名が必須となる。このためHTMLは特別に署名用のアドレスタグを持っている。通常は署名として、ホームページのURLとメールアドレスが右詰めで書かれることが多い。 address{ padding-right 20px; // 右余白 20ピクセル text-align right // 右詰め } コメント ページの最初のコメントや文中のコメントなど、地の文と区別して記述したい場合に使用する。HTMLにはコメント用の特別のタグがないため、div や span をコメントクラスとして使用する。 .comment{ /* コメント */ padding-left 20px; // 左余白 20ピクセル padding-right 20px; // 右余白 20ピクセル padding-top 5px; // 上余白 5ピクセル padding-bottom 5px; // 下余白 5ピクセル background-color #FFF8DC // 背景色 薄い肌色 cornsilk } divclass= comment これはコメントの実例です。ページの先頭にページ全体に対する説明や文中に注釈を加えたいときに使用します。 /div これはコメントの実例です。ページの先頭にページ全体に対する説明や文中に注釈を加えたいときに使用します。 プログラムソース クラス名としてsourceを指定するとプログラムソースとして背景に色を付けて表示できます。 divclass= source これはプログラムソースの実例です。HTMLのソースやJavaのソースプログラムを記述するときに使用します。 /div これはプログラムソースの実例です。HTMLのソースやJavaのソースプログラムを記述するときに使用します。 フッター ページの最後であることを明示するために入れる水平線hrのマージンを設定する。 .footer{ margin-left -20px} 履歴 いつ書かれ、いつ修正加筆されたかわからないようなページの情報は読む価値がないともいえる。WEBページには更新情報は必須である。 現在は特別なスタイルは設定していないが、将来の備えて履歴にもクラスを入れておくこと。 更新履歴 2001.8.7 個人資料に加筆し、講習会資料として作成 2001.12. 4 AnotherHTML-lintで満点がもらえるよう修正
https://w.atwiki.jp/aias-jsstyleguide2/pages/15.html
JavaScriptのスタイルに関するルール 各項目の左側にある三角ボタンで、詳細情報の表示・非表示を切り替えられます。また下のボタンを使うと全項目を一度に変更することができます。 全て切り替える 命名規則 原則として、関数はfunctionNamesLikeThis、変数はvariableNamesLikeThis、クラスはClassNamesLikeThis、列挙型はEnumNamesLikeThis、メソッドはmethodNamesLikeThis、定数はCONSTANT_VALUES_LIKE_THIS、名前空間はfoo.namespaceNamesLikeThis.bar、ファイルはfilenameslikethis.jsのように、それぞれ命名してください。 プロパティとメソッド private なプロパティ、メソッドには名前の末尾にアンダースコアをつけてください。 protected なプロパティ、メソッドには(publicと同様に)末尾にアンダースコアをつけません。 private と protected に関するより詳しい情報は、「可視性」の項を参照してください。 メソッドと関数のパラメータ 省略可能な関数の引数は名前の先頭をopt_としてください。 関数の引数の個数が可変である場合、最後の引数名はvar_argsとすべきです。ただしコード内ではvar_argsを参照するのではなく、argumentsオブジェクトを使って下さい。 @paramアノテーションによっても、省略可能な引数や個数の変化する引数を定義できます。Compilerは変数名とアノテーションのどちらの記法も受け入れますが、両者を共に使うのが好ましいやり方です。 GetterとSetter EcmaScript5では、プロパティに対するgetterとsetterは推奨されません。もし使うのなら、getterが監視中のプロパティの状態を変更しないようにしなければなりません。 /** * 間違い -- こうしてはいけません。 */ var foo = { get next() { return this.nextId++; } }; アクセサ関数 プロパティに対するgetterとsetterは必須ではありません。ただしそれを使う場合、getterは必ずgetFoo()、setterは必ずsetFoo(value)のように命名してください。(論理値を返すgetterであれば、isFoo()としてもかまいません。たいていはその方が自然です。) 名前空間 JavaScript自体は、パッケージや名前空間の仕組みをサポートしていません。 グローバル名の衝突はデバックが難しく、また2つのプロジェクトを統合するようなケースでは、手に負えない大きな問題となる可能性もあります。JavaSriptコードの共有を可能にするには、衝突を防ぐための約束事に従う必要があります。 グローバルコードには名前空間を適用する グローバルスコープに存在するコードは 必ず 、プロジェクトやライブラリと関連付けられた一意のプリフィックスをもつ擬似的な名前空間に属しているものとします。もしプロジェクト名が "Project Sloth" であれば、擬似的な名前空間名はsloth.*とするのがよいでしょう var sloth = {}; sloth.sleep = function() { ... }; Closure LibraryやDojo Toolkitを含む多くのライブラリは、名前空間を宣言するための高位の関数が提供されています。名前空間の宣言方法には一貫性を持たせてください goog.provide( sloth ); sloth.sleep = function() { ... }; 名前空間の所有権を尊重する ある名前空間の下位の名前空間で何かをする場合は、必ず親の名前空間の所有者にそのことを知らせてください。もしあなたがslothの下にhatsを作ろうとしているのであれば、Slothチームはあなたが使うsloth.hatsのことを必ず知っていなければなりません。 外部コードと内部コードでは異なる名前空間を使う 「外部コード」とは、あなたのコードベースの外部にあり、独立してコンパイルされた全てのコードのことです。外部コードと内部コードで使われている名前は、厳格に分離されなければなりません。もしあなたがfoo.hats.*という名前で提供される外部ライブラリを使っているのなら、内部コードはfoo.hats.*にいかなるシンボルも定義してはいけません。ライブラリの提供元が新しいシンボルを定義すると、そのコードは動作しなくなるおそれがあるからです foo.require( foo.hats ); /** * 間違い -- こうしてはいけません。 * @constructor * @extends {foo.hats.RoundHat} */ foo.hats.BowlerHat = function() { }; どうしても外部コードの名前空間に新しいAPIを追加する必要がある場合は、そのAPI関数だけを明示的にエクスポートしてください。ただしそうであっても、一貫性を保ち、Compilerがより効果的に最適化を行えるようにするため、内部コードは内部の名前で内部のAPIを呼び出すようにすべきです。 foo.provide( googleyhats.BowlerHat ); foo.require( foo.hats ); /** * @constructor * @extends {foo.hats.RoundHat} */ googleyhats.BowlerHat = function() { ... }; goog.exportSymbol( foo.hats.BowlerHat , googleyhats.BowlerHat); 可読性を上げるため長い名前に別名を付ける もしそうすることで可読性が向上するなら、完全な型名に対しローカルの別名を付けましょう。ローカル名は型の一番最後の部分にマッチするようにしてください /** * @constructor */ some.long.namespace.MyClass = function() { }; /** * @param {some.long.namespace.MyClass} a */ some.long.namespace.MyClass.staticHelper = function(a) { ... }; myapp.main = function() { var MyClass = some.long.namespace.MyClass; var staticHelper = some.long.namespace.MyClass.staticHelper; staticHelper(new MyClass()); }; 名前空間にローカルの別名をつけてはいけません。名前空間への別名付けにはgoog.scopeを使いましょう。 myapp.main = function() { var namespace = some.long.namespace; namespace.MyClass.staticHelper(new namespace.MyClass()); }; プロパティが列挙型である場合を除き、別名のプロパティ(やその他のメンバ)へのアクセスは避けて下さい /** @enum {string} */ some.long.namespace.Fruit = { APPLE a , BANANA b }; myapp.main = function() { var Fruit = some.long.namespace.Fruit; switch (fruit) { case Fruit.APPLE ... case Fruit.BANANA ... } }; myapp.main = function() { var MyClass = some.long.namespace.MyClass; MyClass.staticHelper(null); }; グローバルスコープでの別名の作成は絶対にしないでください。別名は関数ブロックの中でのみ使用可能とします。 ファイル名の命名規則 大文字小文字を区別するプラットフォームで混乱が生じることを避けるため、ファイル名には小文字のみを使って下さい。ファイル名は.jsで終わらねばならず、-と_以外の区切り文字を含んではいけません(より好ましいのは_より-の方です)。 独自のtoString()メソッド 副作用なしで常に成功すること。 独自のtoString()メソッドを定義することで、オブジェクトが自分自身を文字列化(string-ify)する方法を制御できます。それ自体はよいのですが、そのときメソッドは以下の点を保証していなければなりません。(1) 常に成功すること、(2)他の部分に影響を与えないこと。この基準を満たしていない場合、容易に深刻な問題が引き起こされることでしょう。例えばtoString()メソッドが内部でassert関数を呼び出しているとします。assertは処理が失敗した場合にオブジェクト名を出力しようとしますが、その時に呼び出すのはもちろんtoString()メソッドです。 変数初期化の遅延 OK。 変数は、宣言された時点で常に初期化が可能とは限りません。従って初期化の遅延は当然ありうることです。 明示的なスコープ 常にそうしてください。 常に明示的なスコープを使用し、移植性と明瞭さを向上させてください。例えば関数を作るとき、スコープチェーンの中にwindowがあることを仮定しないでください。いつかwindowがコンテントウィンドウを指していない別のアプリケーションでそれを使いたくなるかもしれません。 コードのフォーマット 詳しい情報を見るには開いてください。 基本的な考え方は C++ formatting rules に従い、さらに以下に説明する内容が追加されます。 波括弧 セミコロンの暗黙的な挿入を考慮し、波括弧を開くときはそれまでと同じ行で始めてください。例えばこのようにします if (something) { // ... } else { // ... } 配列とオブジェクトの初期化 きれいに収まるようなら、配列やオブジェクトの初期化を1行で行ってもかまいません var arr = [1, 2, 3]; // [の後と]の前にスペースを入れないでください。 var obj = {a 1, b 2, c 3}; // {の後と}の前にスペースを入れないでください。 配列とオブジェクトの初期化が複数行にわたる場合は、ブロックと同様、括弧を変数と同じ行に置き、スペース2つ分インデントしてください // オブジェクトの初期化 var inset = { top 10, right 20, bottom 15, left 12 }; // 配列の初期化 this.rows_ = [ "Slartibartfast" fjordmaster@magrathea.com , "Zaphod Beeblebrox" theprez@universe.gov , "Ford Prefect" ford@theguide.com , "Arthur Dent" has.no.tea@gmail.com , "Marvin the Paranoid Android" marv@googlemail.com , the.mice@magrathea.com ]; // メソッド呼び出しの中で使う例。 goog.dom.createDom(goog.dom.TagName.DIV, { id foo , className some-css-class , style display none }, Hello, world! ); 初期化リストの中で長い識別子や値の位置を揃えるのはやっかいな問題です。むしろ常に位置を揃えない方がよいでしょう。例えばこのようにします CORRECT_Object.prototype = { a 0, b 1, lengthyName 2 }; 下のようにはしません WRONG_Object.prototype = { a 0, b 1, lengthyName 2 }; 関数の引数 可能であれば、関数の引数リストは全て同じ行に書かれるべきです。もしそうすることで80文字の制限を超えてしまう場合、引数は読みやすい形式で改行されなくてはなりません。可能な限り80文字に近づけてスペースを節約するか、または引数ごとに改行を行って可読性を高めます。インデントはスペース4つ分、もしくは丸括弧で位置を揃えます。以下に示す例は引数を改行する際の最も一般的なパターンです // スペース4つ分インデントし、80文字で折り返します。関数名がとても長い場合に使います。 // 関数名が変わったときにインデントを修正する必要がなく、場所もあまりとりません。 goog.foo.bar.doThingThatIsVeryDifficultToExplain = function( veryDescriptiveArgumentNumberOne, veryDescriptiveArgumentTwo, tableModelEventHandlerProxy, artichokeDescriptorAdapterIterator) { // ... }; // スペース4つ分インデントし、各行に1つずつ引数を書きます。関数名が長い場合に使います。 // 関数名の変更の影響を受けず、また個々の引数を目立たせることができます。 goog.foo.bar.doThingThatIsVeryDifficultToExplain = function( veryDescriptiveArgumentNumberOne, veryDescriptiveArgumentTwo, tableModelEventHandlerProxy, artichokeDescriptorAdapterIterator) { // ... }; // 丸括弧に揃えてインデントし、80文字で折り返します。視覚的に引数をグループ化でき、 // かつスペースも少なくてすみます。 function foo(veryDescriptiveArgumentNumberOne, veryDescriptiveArgumentTwo, tableModelEventHandlerProxy, artichokeDescriptorAdapterIterator) { // ... } // 丸括弧に揃えてインデントし、各行に1つずつ引数を書きます。 // 個々の引数を目立たせることができます。 function bar(veryDescriptiveArgumentNumberOne, veryDescriptiveArgumentTwo, tableModelEventHandlerProxy, artichokeDescriptorAdapterIterator) { // ... } 関数の呼び出し自体がインデントされている場合、元の文もしくは関数呼び出しの開始位置を基準にスペース4つ分インデントしてかまいません。次の例は全て許容されるスタイルです if (veryLongFunctionNameA( veryLongArgumentName) || veryLongFunctionNameB( veryLongArgumentName)) { veryLongFunctionNameC(veryLongFunctionNameD( veryLongFunctioNameE( veryLongFunctionNameF))); } 無名関数の引渡し 関数呼び出しの引数リスト内で無名関数を宣言する場合、無名関数の内容は、文全体の左端からスペース2つ分、もしくは無名関数の宣言の左端からスペース2つ分インデントします。これは無名関数の内容を読みやすくする(関数全体が画面の右側に圧し潰された状態にならないようにする)ためです。 prefix.something.reallyLongFunctionName( whatever , function(a1, a2) { if (a1.equals(a2)) { someOtherLongFunctionName(a1); } else { andNowForSomethingCompletelyDifferent(a2.parrot); } }); var names = prefix.something.myExcellentMapFunction( verboselyNamedCollectionOfItems, function(item) { return item.name; }); goog.scopeによる別名 Closure Libraryが提供するgoog.scopeを使うと、名前空間を含むシンボルの長い名前を短く置き換えることができます。 goog.scopeの呼び出しは、1ファイルにつき1度だけ、グローバルスコープ内で行います。 呼び出しの開始部分goog.scope(function() {は、goog.provide、goog.require、トップレベルコメントの後に、正確に1行空けてから記述しなければなりません。呼び出しはファイルの最終行で閉じられなければなりません。またこのとき// goog.scopeというコメントを、ステートメント末尾のセミコロンからスペース2つ空けて追記してください。 C++の名前空間と同様に、goog.scopeの配下のコードはインデントしません。各行の先頭から記述を続けます。 作成した別名を、別のオブジェクト(例えば、ほとんどのコンストラクタ、列挙型、名前空間)へ再割り当てしないでください。次のようにしてはいけません(コンストラクタへの別名のつけ方は、下を参照してください) goog.scope(function() { var Button = goog.ui.Button; Button = function() { ... }; ... 別名は、シンボルの完全名の最後の部分と同じでなければなりません。 goog.provide( my.module.SomeType ); goog.require( goog.dom ); goog.require( goog.ui.Button ); goog.scope(function() { var Button = goog.ui.Button; var dom = goog.dom; // コンストラクタ宣言より後に別名化します。 my.module.SomeType = function() { ... }; var SomeType = my.module.SomeType; // いつもどおり、プロトタイプメソッドを宣言します SomeType.prototype.findButton = function() { // 上で別名化したButton this.button = new Button(dom.getElement( my-button )); }; ... }); // goog.scope 行折り返しのインデント 配列リテラルとオブジェクトリテラル、無名関数を除き、行の折り返しは全て 兄弟 の式に対し左揃えでインデントするか、 親 の式に対しスペース4つ(2つではなく)分深くインデントします(ここでいう 兄弟 や 親 は、丸括弧のネストの深さを指します)。 someWonderfulHtml = + getEvenMoreHtml(someReallyInterestingValues, moreValues, evenMoreParams, a duck , true, 72, slightlyMoreMonkeys(0xfff)) + ; thisIsAVeryLongVariableName = hereIsAnEvenLongerOtherFunctionNameThatWillNotFitOnPrevLine(); thisIsAVeryLongVariableName = siblingOne + siblingTwo + siblingThree + siblingFour + siblingFive + siblingSix + siblingSeven + moreSiblingExpressions + allAtTheSameIndentationLevel; thisIsAVeryLongVariableName = operandOne + operandTwo + operandThree + operandFour + operandFive * ( aNestedChildExpression + shouldBeIndentedMore); someValue = this.foo( shortArg, Some really long string arg - this is a pretty common case, actually. , shorty2, this.bar()); if (searchableCollection(allYourStuff).contains(theStuffYouWant) !ambientNotification.isActive() (client.isAmbientSupported() || client.alwaysTryAmbientAnyways())) { ambientNotification.activate(); } 空行 論理的に関連性のあるコードをまとめるため、空行を使ってください。例えば次のようにします doSomethingTo(x); doSomethingElseTo(x); andThen(x); nowDoSomethingWith(y); andNowWith(z); 二項または三項の演算子 演算子は必ず先行する行の側に置きます。それを除くと、改行やインデントは他のGoogleスタイルガイドと同じルールに従います。当初この演算子の配置はセミコロンの自動挿入への配慮から決定されましたが、実際にはセミコロンが二項演算子の前に挿入されることはありません。しかし一貫性を保つため、新しいコードもこのスタイルを守ってください。 var x = a ? b c; // 収まるなら1行にまとめます。 // 4文字分のインデントはOKです。 var y = a ? longButSimpleOperandB longButSimpleOperandC; // 最初のオペランドの位置までインデントするのもOKです。 var z = a ? moreComplicatedB moreComplicatedC; ドット演算子も同じです。 var x = foo.bar(). doSomething(). doSomethingElse(); 丸括弧 必要なときだけ使います。 丸括弧は控えめに、基本的には文法やセマンティクスが求める場合にだけ使います。 delete、typeof、voidのような単項演算子やreturn、throwのようなキーワードの後ろで丸括弧を使ってはいけません(case、in、newで使わないのと同様です)。 文字列 "より を使います。 一貫性の点で、ダブルクォート(")よりもシングルクォート( )の方が好ましいといえます。HTMLを含む文字列を作成する際には、シングルクォートの方が便利です var msg = This is some HTML ; 可視性(privateまたはprotectedなフィールド) JSDocアノテーションの@privateと@protectedの利用を推奨します。 JSDocアノテーションの@privateと@protectedを利用し、クラス、関数、プロパティの可視性を明示することを推奨します。 Compilerのフラグ--jscomp_warning=visibilityを有効にすると、可視性の違反について警告が出力されます。 Closure Compiler Warnings を参照してください。 グローバルな変数や関数に付けられた@privateは、同じファイル内のコードだけがそれらにアクセス可能であることを表します。 @privateが付けられたコンストラクタは、それをインスタンス化できるのが同じファイル内のコードとそれ自身の静的またはインスタンスメンバだけであることを表します。@privateコンストラクタは、同じファイルからであればパブリックで静的なプロパティとしてアクセスできます。またinstanceof演算子もそれらにアクセスできます。 グローバルな変数、関数、コンストラクタに対して@protectedアノテーションは絶対に付けられません。 // ファイル 1 // AA_PrivateClass_ と AA_init_ はグローバルでありかつ同一ファイル内に存在するため、 // 互いにアクセス可能です。 /** * @private * @constructor */ AA_PrivateClass_ = function() { }; /** @private */ function AA_init_() { return new AA_PrivateClass_(); } AA_init_(); @privateなプロパティにアクセス可能なのは、同じファイルに存在する全てのコードと、もしそのプロパティがクラスに属しているのであれば、そのプロパティを"所有"するクラスの全ての静的メソッドとインスタンスメソッドです。それらは別のファイルに存在するサブクラスからはアクセスできず、オーバーライドされることもありません。 @protectedなプロパティにアクセス可能なのは、同じファイルに存在する全てのコードと、そのプロパティを"所有"するクラスとそのサブクラスの全ての静的メソッドとインスタンスメソッドです。 これらのセマンティクスはC++やJavaのそれとは違いがある点に注意してください。例えばアクセス権限は、同じクラスやクラス階層に属するものだけでなく、同じファイル内に存在する全てのコードに与えられています。またC++とは異なり、プライベートなプロパティはサブクラスからオーバーライドできません。 // ファイル 1 /** @constructor */ AA_PublicClass = function() { /** @private */ this.privateProp_ = 2; /** @protected */ this.protectedProp = 4; }; /** @private */ AA_PublicClass.staticPrivateProp_ = 1; /** @protected */ AA_PublicClass.staticProtectedProp = 31; /** @private */ AA_PublicClass.prototype.privateMethod_ = function() {}; /** @protected */ AA_PublicClass.prototype.protectedMethod = function() {}; // ファイル 2 /** * @return {number} 1列に並べたカモの数。 */ AA_PublicClass.prototype.method = function() { // これら2つのプロパティへのアクセスは正当です。 return this.privateProp_ + AA_PublicClass.staticPrivateProp_; }; // ファイル 3 /** * @constructor * @extends {AA_PublicClass} */ AA_SubClass = function() { // protectedな静的プロパティへの正当なアクセス。 AA_PublicClass.staticProtectedProp = this.method(); }; goog.inherits(AA_SubClass, AA_PublicClass); /** * @return {number} 1列に並べたカモの数。 */ AA_SubClass.prototype.method = function() { // protectedなインスタンスプロパティへの正当なアクセス。 return this.protectedProp; }; JavaScriptでは、ある型(AA_PrivateClass_のような)とその型のコンストラクタが区別されないことに注意してください。publicな型とprivateなコンストラクタを両立させる方法はありません。(可視性のチェックを破ってコンストラクタに別名をつけるのは簡単だからです) JavaScriptのデータ型 Compilerによる型の強制を推奨します。 詳細はこちらのページを参照してください。 コメント JSDocを使ってください。 詳細はこちらのページを参照してください。 goog.provideによる依存関係の規定 トップレベルのシンボルだけを規定します。 あるクラスに含まれるメンバ(列挙型や内部クラスなど)は全て、同じファイル内で定義しましょう。こうすると、1つのファイル内でgoog.provideが規定するのは最上位のクラスだけになるはずです。 こうします goog.provide( namespace.MyClass ); こうはしません goog.provide( namespace.MyClass ); goog.provide( namespace.MyClass.Enum ); goog.provide( namespace.MyClass.InnerClass ); goog.provide( namespace.MyClass.TypeDef ); goog.provide( namespace.MyClass.CONSTANT ); goog.provide( namespace.MyClass.staticMethod ); 名前空間のメンバは個々に規定します goog.provide( foo.bar ); goog.provide( foo.bar.method ); goog.provide( foo.bar.CONSTANT ); コンパイル 必須です。 クライアントに配信される全てのコードは、Closure CompilerのようなJSコンパイラによってコンパイルされていなければなりません。 ヒントとテクニック JavaScriptについてもう少しだけ。 論理値表現 以下の値は、論理値の表現としてはすべてfalseです null undefined (空文字) 数値の0 でも気をつけてください。以下の値は全てtrueです 文字列の 0 [](空の配列) {}(空のオブジェクト) 以上から、下のコードを書き換えてみましょう while (x != null) { これはもっと短くできます(ただしxが 0、空文字、falseを取らないことが条件です) while (x) { また、文字列がnullでも空文字でもないことをチェックしたいとします。こうも書けますが if (y != null y != ) { 下の方が短くてもっといいでしょう if (y) { 警告 論理値表現の結果は直感と異なることがよくあります。いくつか例を示します Boolean( 0 ) == true 0 != true 0 != null0 == []0 == false Boolean(null) == falsenull != truenull != false Boolean(undefined) == falseundefined != trueundefined != false Boolean([]) == true[] != true[] == false Boolean({}) == true{} != true{} != false 条件(三項)演算子 (? ) こう書く代わりに if (val) { return foo(); } else { return bar(); } こう書くことができます return val ? foo() bar(); 三項演算子はHTMLを作成するときにも便利です var html = input type="checkbox" + (isChecked ? checked ) + (isEnabled ? disabled ) + name="foo" ; と || これらの二項演算子は短絡演算子です。最後に評価された項目の結果を式全体の評価とします。 ||は「デフォルト」演算子とも呼ばれます。その理由は /** @param {*=} opt_win */ function foo(opt_win) { var win; if (opt_win) { win = opt_win; } else { win = window; } // ... } 上のコードを、こう書き換えられるからです /** @param {*=} opt_win */ function foo(opt_win) { var win = opt_win || window; // ... } もまた、コードを短くするのに役立ちます。例えば下のように書く代わりに if (node) { if (node.kids) { if (node.kids[index]) { foo(node.kids[index]); } } } こうできます if (node node.kids node.kids[index]) { foo(node.kids[index]); } あるいは var kid = node node.kids node.kids[index]; if (kid) { foo(kid); } とはいえ、これは少々やりすぎでしょう node node.kids node.kids[index] foo(node.kids[index]); ノードリストへの反復処理 多くの場合ノードリストはフィルタ付きのイテレータとして実装されています。これは、lengthのようなプロパティを参照するときのオーダーが O(n) であり、反復処理中にlengthを再計算し続けると、そのオーダーは O(n^2) となるということを意味しています。 var paragraphs = document.getElementsByTagName( p ); for (var i = 0; i paragraphs.length; i++) { doSomething(paragraphs[i]); } 上のコードはこう書き換えたほうが優れています var paragraphs = document.getElementsByTagName( p ); for (var i = 0, paragraph; paragraph = paragraphs[i]; i++) { doSomething(paragraph); } 要素が論理値のfalseとして評価される値を持たなければ、上のコードは全てのコレクションや配列で正常に動作します。 あるノードの子ノードに対して反復処理を行う際には、firstChildプロパティとnextSiblingプロパティを使うこともできます var parentNode = document.getElementById( foo ); for (var child = parentNode.firstChild; child; child = child.nextSibling) { doSomething(child); }
https://w.atwiki.jp/talesofdic/pages/21152.html
スマートスタイル(すまーとすたいる) 概要 アビスに登場した称号。 登場作品 + 目次 アビス 関連リンク アビス ガイの称号。 取得者 ガイ 取得条件 効果 ▲ 関連リンク